<template>
    <view>
        <button @click="login" type="primary">微信登录</button>
    </view>
</template>

<script>
export default {
    async onLoad() {
        // 1 、获取用户与当前小程序相关信息
        let [err1, res1] = await uni.getUserInfo(); // 2、用户数据

        let [err2, res2] = await uni.login(); // 3。请求：

        let res = await this.request({
            url: "/api/public/v1/users/wxlogin",
            method: "POST",
            data: {
                code: res2.code,
                encryptedData: res1.encryptedData,
                iv: res1.iv,
                rawData: res1.rawData,
                signature: res1.signature,
            },
        }); // 4、存
        uni.setStorageSync("token", res.message.token); // 5.回到上一页

        uni.switchTab({
            url: "/pages/cart/index",
        });
    },
    // onLoad() {
    //     this.getCode();
    // },
    // methods: {
    //     // 1. 获取用户登录凭证
    //     async getCode() {
    //         // 1. 获取微信用户登录凭证
    //         try {
    //             const codeData = await uni.login();
    //             console.log(codeData, "codeData");
    //             // 把成功获取的用户登录凭证存到this上
    //             // 说明：没有在data定义，直接this.变量名存值，不是响应式
    //             this.code = codeData[1].code;
    //         } catch (error) {
    //             console.log(error);
    //         }
    //     },
    //     // 登录
    //     async login() {
    //         /**
    //          * 微信登录流程：
    //          * 1. 页面加载后，首先调用uni.login方法，获取微信用户登录凭证
    //          * 2. 调用uni.getUserProfile方法，获取微信用户信息
    //          * 3. 调用后台api登录接口，传入获取微信用户信息进行登录
    //          * 4. 登录成功后获取token，持久化到本地
    //          */
    //         try {
    //             const userInfo = await uni.getUserProfile({
    //                 desc: "获取微信用户信息登录",
    //             });
    //             const { encryptedData, rawData, iv, signature } = userInfo[1];
    //             // 2. 获取微信用户信息成功
    //             console.log("微信用户信息：", rawData);
    //             // 3. 调用后台接口登录
    //             const { meta: msg, message: data } = await this.request({
    //                 url: "/api/public/v1/users/wxlogin",
    //                 method: "post",
    //                 data: {
    //                     encryptedData,
    //                     rawData,
    //                     iv,
    //                     signature,
    //                     code: this.code,
    //                 },
    //             });
    //             console.log("登录：", msg, data);
    //             if (msg.status === 200) {
    //                 uni.setStorageSync("ugo-token-150", data.token);
    //                 uni.navigateBack();
    //             } else {
    //                 uni.showToast({
    //                     title: "登录失败！",
    //                 });
    //             }
    //         } catch (error) {
    //             console.log(error);
    //         }
    //     },
    // },
};
</script>

<style lang="less" scoped>
button {
    width: 600rpx;
    margin: 200rpx auto 0;
}
</style>
